Option Explicit

'################################################################
' Descriptor
' 字符串前缀表接口
'################################################################

'################################################################
' Property
'################################################################
' 返回各个字符串前缀表的原始字符串
Public Property Get OriginStr() As String
End Property

' 获取各个实现类的标准化后的字符串
Public Property Get Str() As String
End Property

' 获取原始字符串的长度
Public Property Get Length() As Integer
End Property

' 获取原始字符串
Public Property Get ActiveIndex() As Integer
End Property

'################################################################
' Function
'################################################################
' 检查当前字符串是否是以 s 对象中的字符串开始的
' @param s 需要检查的字符串
Public Function startwith(ByRef s As IStringNextTable) As Boolean
End Function

' 检查当前字符串是否是以 s 字符串开始的
'
' @param s, 需要检查的字符串
Public Function startwithStr(ByRef s As String) As Boolean
End Function

' 检查当前字符串是否是以 s 对象中的字符串结束的
'
' @param s, 需要检查的字符串
Public Function endwith(ByRef s As IStringNextTable) As Boolean
End Function

' 检查当前字符串是否是以 s 对象中的字符串结束的
'
' @param s, 需要检查的字符串
Public Function endwithStr(ByRef s As String) As Boolean
End Function

' 获取活动索引上的字符
Public Function getActiveChar() As String
End Function

' 手动设置活动索引
' @param index 活动索引
Public Sub setActiveIndex(ByRef index As Integer)
End Sub

' 推进到下一个活动索引
Public Sub toNextActiveIndex()
End Sub

' 当前的活动和指定字符进行比较
' @param c 需要进行比较的字符串
Public Sub matchChar(ByRef c As String)
End Sub

' 当前的活动和指定字符进行比较，并返回比较结果
' 只会执行字符比较，不会修改活动索引
'
' @param c 需要进行比较的字符串
Public Function equalActiveChar(ByRef c As String) As Boolean
End Function

' 检查当前字符串是否已经完成匹配
Public Function isWholeMatched() As Boolean
End Function

' 重置上下文相关内容
Public Sub reset()
End Sub
